package com.yiyahui.project.erp.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yiyahui.framework.aspectj.lang.annotation.Excel;
import com.yiyahui.framework.web.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;

/**
 * 开单项目对象 yiya_item_billing
 * 
 * @author yiyahui
 * @date 2020-07-01
 */

@ApiModel(value="开单项目对象")
public class YiyaItemBilling extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 主单id */
    @ApiModelProperty(value="主单id")
    @Excel(name = "主单id")
    private Long billingMainId;

    /** 牙位 */
    @ApiModelProperty(value="牙位")
    @Excel(name = "牙位")
    private String toothPosition;

    /** 项目id */
    @ApiModelProperty(value="项目id")
    @Excel(name = "项目id")
    private Long itemId;

    /** 项目名称 */
    @ApiModelProperty(value="项目名称")
    @Excel(name = "项目名称")
    private String itemName;

    /** 单价 */
    @ApiModelProperty(value="单价")
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 单位 */
    @ApiModelProperty(value="单位")
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @ApiModelProperty(value="数量")
    @Excel(name = "数量")
    private Long count;

    /** 项目应收 */
    @ApiModelProperty(value="项目应收")
    @Excel(name = "项目应收")
    private BigDecimal projectReceivable;

    /** 项目已收 */
    @ApiModelProperty(value="项目已收")
    @Excel(name = "项目已收")
    private BigDecimal projectReceived;

    /** 项目欠费 */
    @ApiModelProperty(value="项目欠费")
    @Excel(name = "项目欠费")
    private BigDecimal projectArrearage;

    /** 项目原价 */
    @ApiModelProperty(value="项目原价")
    @Excel(name = "项目原价")
    private BigDecimal projectOriginalPrice;

    /** 折扣 */
    @ApiModelProperty(value="折扣")
    @Excel(name = "折扣")
    private String discount;

    /** 抵用方式 */
    @ApiModelProperty(value="抵用方式")
    @Excel(name = "抵用方式")
    private String deductionMode;

    /** 抵用金额 */
    @ApiModelProperty(value="抵用金额")
    @Excel(name = "抵用金额")
    private BigDecimal deductionPrice;

    /** 医生 */
    @ApiModelProperty(value="医生")
    @Excel(name = "医生")
    private String doctor;

    /** 状态 0 新建 1 已结清 2 欠费 3 已退款 */
    @ApiModelProperty(value="状态 0 新建 1 已结清 2 欠费 3 已退款")
    @Excel(name = "状态 0 新建 1 已结清 2 欠费 3 已退款")
    private Integer status;

    /** 备注 */
    @ApiModelProperty(value="备注")
    @Excel(name = "备注")
    private String remarks;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setBillingMainId(Long billingMainId) 
    {
        this.billingMainId = billingMainId;
    }

    public Long getBillingMainId() 
    {
        return billingMainId;
    }
    public void setToothPosition(String toothPosition) 
    {
        this.toothPosition = toothPosition;
    }

    public String getToothPosition() 
    {
        return toothPosition;
    }
    public void setItemId(Long itemId) 
    {
        this.itemId = itemId;
    }

    public Long getItemId() 
    {
        return itemId;
    }
    public void setItemName(String itemName) 
    {
        this.itemName = itemName;
    }

    public String getItemName() 
    {
        return itemName;
    }

    public BigDecimal getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }

    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setCount(Long count) 
    {
        this.count = count;
    }

    public Long getCount() 
    {
        return count;
    }


    public void setProjectReceivable(BigDecimal projectReceivable) {
        this.projectReceivable = projectReceivable;
    }

    public BigDecimal getProjectReceived() {
        return projectReceived;
    }

    public void setProjectReceived(BigDecimal projectReceived) {
        this.projectReceived = projectReceived;
    }

    public BigDecimal getProjectArrearage() {
        return projectArrearage;
    }

    public void setProjectArrearage(BigDecimal projectArrearage) {
        this.projectArrearage = projectArrearage;
    }

    public BigDecimal getDeductionPrice() {
        return deductionPrice;
    }

    public void setDeductionPrice(BigDecimal deductionPrice) {
        this.deductionPrice = deductionPrice;
    }

    public void setDiscount(String discount)
    {
        this.discount = discount;
    }

    public String getDiscount() 
    {
        return discount;
    }
    public void setDeductionMode(String deductionMode) 
    {
        this.deductionMode = deductionMode;
    }

    public BigDecimal getProjectReceivable() {
        return projectReceivable;
    }

    public BigDecimal getProjectOriginalPrice() {
        return projectOriginalPrice;
    }

    public void setProjectOriginalPrice(BigDecimal projectOriginalPrice) {
        this.projectOriginalPrice = projectOriginalPrice;
    }

    public String getDeductionMode() {
        return deductionMode;
    }

    public void setDoctor(String doctor)
    {
        this.doctor = doctor;
    }

    public String getDoctor() 
    {
        return doctor;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("billingMainId", getBillingMainId())
            .append("toothPosition", getToothPosition())
            .append("itemId", getItemId())
            .append("itemName", getItemName())
            .append("unitPrice", getUnitPrice())
            .append("unit", getUnit())
            .append("count", getCount())
            .append("projectReceivable", getProjectReceivable())
            .append("projectReceived", getProjectReceived())
            .append("projectArrearage", getProjectArrearage())
            .append("projectOriginalPrice", getProjectOriginalPrice())
            .append("discount", getDiscount())
            .append("deductionMode", getDeductionMode())
            .append("deductionPrice", getDeductionPrice())
            .append("doctor", getDoctor())
            .append("status", getStatus())
            .append("remarks", getRemarks())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
